import itertools

# 定义一个函数，用于计算表达式的值
def calc_expression(nums, ops):
    expression = "".join(f"{nums[i]}{ops[i]}" for i in range(len(ops))) + str(nums[-1])
    try:
        return eval(expression)
    except ZeroDivisionError:
        return None  # 防止除零错误

# 定义一个函数，用于生成所有的排列组合并检查是否能得到24
def find_24(nums):
    # 所有的数字排列组合
    for num_perm in itertools.permutations(nums):
        # 所有的操作符组合
        for ops in itertools.product(['+', '-', '*', '/'], repeat=4):
            result = calc_expression(num_perm, ops)
            if result == 24:
                # 返回有效的表达式
                return "".join(f"{num_perm[i]}{ops[i]}" for i in range(4)) + str(num_perm[-1])
    return "No solution"

# 示例: 输入4个数字
nums = [8, 6, 5, 9, 4]
print(find_24(nums))
